package com.yunji.aggregate.model.dto.stock;

import com.yunji.common.base.SqlConcatParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import java.util.List;


/**
 * @Project: yunji-coffee
 * @Package: com.yunji.storage.params
 * @Title: StockRecordsParam
 * <p>
 * History:
 * Date                     Version     Author          Summary
 * ============================================================
 * 2024-08-17 11:28:35      V1.0        HuaAo       新建类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StorageRecordsParam extends SqlConcatParam {

    @ApiModelProperty("页码")
    private Integer pageNum;

    @ApiModelProperty("数量")
    private Integer pageSize;

    @ApiModelProperty("通用编码")
    private String code;

    @ApiModelProperty("记录ID")
    private Long recordId;

    @ApiModelProperty("单据ID")
    private Long ticketId;

    @ApiModelProperty("单据编码")
    @Length(message = "单据编号不能超过{max}个字符", max = 20)
    private String ticketCode;

    @ApiModelProperty("业务单类型 业务类型 0-其他 1-调拨单 2-坏返单 3-维修单 4-盘点单 5-生产单 6-采购单 7-退货单 8-废品单")
    private Integer businessType;

    @ApiModelProperty("出入库类型 1-入库 2-出库")
    private Integer storageType;

    @ApiModelProperty("所属单位")
    private Long belongId;

    @ApiModelProperty("所属单位名称")
    private String belongName;

    @ApiModelProperty("父级所属ID")
    private Long parentId;

    @ApiModelProperty("所属单位Ids")
    private List<Long> belongIds;

    @ApiModelProperty("商品类型")
    private Integer productType;

    @ApiModelProperty("商品名称")
    @Length(message = "商品名称不能超过{max}个字符", max = 30)
    private String productName;

    @ApiModelProperty("商品sku")
    @Length(message = "商品sku不能超过{max}个字符", max = 20)
    private String productSku;

    @ApiModelProperty("开始时间")
    private String startTime;

    @ApiModelProperty("结束时间")
    private String closeTime;

    @ApiModelProperty("单据多个状态")
    private Integer[] storageStatus;

    @ApiModelProperty("搜索字段")
    private String searchField;

}